$(function(){

	//点击添加按钮
	$("#sysAddBtn").click(function() {
		$("#title").html("添加体系");
		$("#nameMessag").css('display','none');
		$("#sysname").val("");
		$("#sysresp").val("");
		$("#sysid").val(""); 
		$("#respid").val("");
		$("#hideName").val("");
		$("#respMsg").css("display","none");

		 
		$("#sysAdd").modal('show');
	});

	//点击取消按钮
	$("#cancleBtn").click(function() {
		// $("#codeMessage").css('display', 'none');
		$("#nameMessag").css('display','none');
		// $("#syscode").val("");
		$("#sysname").val("");
		$("#sysresp").val("");
		$("#sysid").val(""); 
		$("#respid").val("");
		$("#hideName").val("");
		$("#respMsg").css("display","none");
	});

    //点击保存按钮
	$("#saveBtn").click(function() {
		var sysModel = buildModel();
		var type;
		var sendData = {};

        //如果负责人不为空而负责人id为空，则通过负责人名称查询负责人id
		// if(sysModel.sysManagerId == "" || sysModel.sysManagerId == null) {
		// 	console.info("sysManagerId = " + sysModel.sysManagerId);
		// 	if(sysModel.sysResp != "" && sysModel.sysResp != null) {
		// 		console.info("sysResp = " + sysModel.sysResp);
		// 		$.ajax({
		// 			url: '/api/employee/getEmpByName?empName=' + sysModel.sysResp,
		// 			type: 'get',
		// 			success: function(result) {
		// 				console.info("getEmpByName:---");
		// 				console.info(result);
		// 				sysModel.sysManagerId = result[0].id;
		// 			}
		// 		});
		// 	}
		// }
		
		if(sysModel.sysName == "") {
			
			$("#nameMsg").html("请填写体系名称");
			$("#nameMessag").css('display','block');
			return;
		}else{
			$("#nameMessag").css('display', 'none');

		}

		// console.info("sysid = " + $("#sysid").val());
		if($("#sysid").val() == "" || $("#sysid").val() ==null) {
			//添加体系
			type="post";
			sendData = {
				sysData: sysModel,
				type: type
			}
		} else{
			//更新体系
			type="put";
			sendData = {
				sysData: sysModel,
				sysid : $("#sysid").val(),
				type: type
			}
		}
		// console.info(sendData);
		// console.info("-----type---------" + type);

		$.ajax({
			url: '/api/system/checkSysName?' ,
			type: 'get',
			data: {'sendData':JSON.stringify(sendData),'_t':new Date().getTime()},
			// data: sendData,
			success: function(result) {
				 
				if(result == "false"){
					$("#nameMsg").html("名称已存在");
					$("#nameMessag").css('display', 'block');
					return;
				}else if(result == "true"){
					$("#nameMessag").css('display', 'none');
					saveSys(sendData, type);
				}

			}
		});
		
		
	});

	var saveSys = function(sendData, type) {
		// console.info("type = " + type);
		// console.info(sendData);
		$.ajax({
			url: '/api/system',
			type: type,
			data: sendData,
			success: function(result) {
				if(result == 'noPrivilege'){
					bootbox.alert('您没有权限,操作失败！');
					return;
				}
				//bootbox.alert(result);
				$("#sysAdd").modal('hide');
				// window.location.reload();
				init();
			}
		});
	};
	
	//获取页面数据并构建模型
	var buildModel = function(){
		var $sysname = $("#sysname").val();
		var $sysresp = $("#sysresp").val();
		// var $sysid = $("#sysid").val(); 
		var $respid = $("#respid").val();

		var model = {};
		// model.id = $sysid;
		// model.sysCode = $syscode;
		model.sysName = $sysname;
		model.sysResp = $sysresp;
		model.sysManagerId = $respid;
		
	
		return model;
	};

	var init = function() {
		$("#sysname").val("");
		$("#sysid").val(""); 
		$("#respid").val("");
		$("#hideName").val("");
		$("#respMsg").css("display","none");
		$("#sysresp").val("");
		$("#nameMessag").css('display','none');


		$.ajax({
			url: '/api/system?',
			type: 'get',
			data: {'_t':new Date().getTime()},
			success: function(data) {
				if(data == 'noPrivilege'){
					data = [];
				}
				showList(data);

			}
		});
	};

	init();

	var showList = function(data) {
		$("#sysBody").html('');

		if(data == "none" || data == [] || data.length == 0) {
			$('#tip').html("<div class='alert alert-warning' style='margin-top:-20px;'>未能搜索到相关体系信息</div>");
		}else{
			$('#tip').html("");
		}

		$.each(data, function(i, sysData) {
			var templateData = {
				sysid : sysData.id,
				// syscode : sysData.sysCode,
				sysname : sysData.sysName,
				sysresp : sysData.name,
				respid : sysData.sysManagerId
			};
			var template = "<tr><td class=center><span id=name>{{sysname}}</span><input type=hidden id=hideid value={{sysid}}> <input type=hidden id=hiderespid value={{respid}}></td>" + 
			               "<td class=center id=resp>{{sysresp}}</td>" + 
			               "<td class=center><i id=editIcon style='cursor:pointer;' class='icon-pencil bigger-150'></i>&nbsp;&nbsp;&nbsp;<i id='deleteIcon' style='cursor:pointer;' class='icon-trash  bigger-150'></i></td></tr>";

			var $html = $(Mustache.to_html(template, templateData));
			$("#sysBody").append($html);

			// 定义删除按钮删除事件
			$html.find('#deleteIcon').click({
				html: $html
			}, function(e) {
				var $html = $(e.data.html);
				var hideSysId = $html.find('#hideid').val();
				var name =  $html.find('#name').html();
				// console.info(hideSysId);
				bootbox.confirm("确定删除" + name +"吗？", function(result) {
					if(!result) {
						return;
					}else{
						//校验该体系下是否有机构，有则不能删除
						$.ajax({
							url: '/api/organizations/checkSystem/' + hideSysId + '?',
							type: 'get',
							data: {'_t': new Date().getTime()},
							success: function(data) {
								//true表示体系下没有机构，可以删除
								if(data == "true") {
									// bootbox.alert("删除体系成功");
									delSystem(hideSysId);
								}else{
									bootbox.alert(name + "下存在机构，不能删除");
								}
							}
						});
					}
				});
				

			});

			//定义编辑按钮编辑事件
			$html.find('#editIcon').click({
				html: $html
			}, function(e) {

				var $html = $(e.data.html);

				// var code = $html.find('#code').html();
				var name = $html.find('#name').html();
				var personid = $html.find('#hiderespid').val();
				var resp = $html.find('#resp').html();
				var hiddenid = $html.find('#hideid').val();

				// console.info("hiddenid = " + $html.find('#hideid').val());

				// $("#syscode").val(code);
				$("#sysname").val(name);
				$("#sysresp").val(resp);
				$("#sysid").val(hiddenid); 
				$("#respid").val(personid);
				$("#hideName").val(resp);
				$("#respMsg").css("display","none");
				
				$("#title").html("编辑体系");
				
				$("#sysAdd").modal('show');

			});

		});
		
	};

	var delSystem = function(sysid) {
		$.ajax({
			url: '/api/system?sysid=' + sysid,
			type: 'DELETE',
			success: function(result) {
				// console.info(result);
				if(result == 'noPrivilege'){
					bootbox.alert('您没有权限,操作失败！');
					return;
				}
				bootbox.alert("删除体系成功");
				init();
			},
			error: function(result) {
				bootbox.alert("删除体系失败");
			}
		});
	};

	 var availableTags = [];
	 var getEmps = function() {
	 	$.ajax({
	 		url: '/api/employee/all?',
	 		type: 'get',
	 		data: {'_t': new Date().getTime()},
	 		success: function(data) {
	 			// console.info(data);
	 			if(data != "none") {
	 				for(var i = 0; i < data.length; i ++) {
	 					// console.info(data[i].id);
	 					var showStr = data[i].name + "-" + data[i].orgAddress + "-" + data[i].orgName;
	 					var item = {
	 						label: showStr,
	 						value: data[i].name,
	 						empId: data[i].id
	 					}
	 					availableTags.push(item);
	 				}
	 			}
	 		}
	 	});
	 };

	getEmps();

	$("#sysresp").autocomplete({
		source: availableTags,
		select: function( event, ui ) {
		$("#respid").val(ui.item.empId);
		$("#hideName").val(ui.item.value);
	     },
	});

	$("#sysresp").blur(function(){
		var respName = $("#sysresp").val().replace(/(^\s*)|(\s*$)/g, "");
		var respid = $("#respid").val();
		var hideName = $("#hideName").val();
		if(respName == "") {
			$("#respid").val("");
			$("#hideName").val("");
		}else{
			$.ajax({
				url: '/api/employee/getEmpByName?',
				type: 'get',
				data: {'empName':respName, '_t':new Date().getTime()},
				success: function(result) {
					// console.info("org---result:", result);
					if(result != null && result.length != 0) {
						// alert(respid);
						if(respid == null || respid == "" || respid == 0) {
							$("#respid").val(result[0].id);
						}else if(result[0].name != hideName) {
							$("#respid").val(result[0].id);
						}
					}else{
						$("#respMsg").html("员工不存在！");
						$("#respMsg").css("display","block");
					}
				}
			});
		}
	});


});